﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Nage.Algorithms.RandomGenerators
{
    /// <summary>
    /// Random number generator interface
    /// </summary>
    public interface IRng
    {
        /// <summary>
        /// Returns a random number between 0.0 and 1.0
        /// </summary>
        /// <returns></returns>
        double GetDouble();

        /// <summary>
        /// Returns a random number between 0.0 and max
        /// </summary>
        /// <param name="max">maximal value</param>
        /// <returns></returns>
        double GetDouble(double max);

        /// <summary>
        /// Returns a random number between min and max
        /// </summary>
        /// <param name="min">minimal value</param>
        /// <param name="max">maximal value</param>
        /// <returns></returns>
        double GetDouble(double min, double max);

        /// <summary>
        /// Draws a value with selected chances
        /// </summary>
        /// <param name="chances">chances</param>
        /// <returns></returns>
        Boolean Draw(double chances);
    }
}
